<?php

/**
 * Shipping information page
 *
 * Shopalong, the open source shopping system
 * http://shopalong.blogspot.com/
 *
 * @author Stuart Metcalfe <shoopdev@gmail.com>
 * @copyright Copyright &copy; 2003 osCommerce
 * @copyright Portions Copyright &copy; 2006 Shopalong
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 */

require('includes/application_top.php');

// redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled (or the session has not started)
if (!$session->isStarted()) {
	tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE));
}

if ($account->isRegistered())
{
	/**
	 * @todo Can these 'session->unregister' commands be moved to the central
	 * Account object?
	 */
	
	$session->unregister('customer_id');
	$session->unregister('customer_default_address_id');
	$session->unregister('customer_first_name');
	$session->unregister('customer_country_id');
	$session->unregister('customer_zone_id');
	$session->unregister('comments');
	$cart->reset();
	$theme->config_load('logout.conf');
	$theme->display('generic.tpl');
}

else
{
	if (isset($HTTP_GET_VARS['action']) && ($HTTP_GET_VARS['action'] == 'process'))
	{
		$error = false;
		$email_address = tep_db_prepare_input($HTTP_POST_VARS['email_address']);
		$password = tep_db_prepare_input($HTTP_POST_VARS['password']);
	
		// Check if email exists
		$check_customer_query = tep_db_query('select customers_id, customers_firstname, customers_password, customers_email_address, customers_default_address_id from '.TABLE_CUSTOMERS.' where customers_email_address = "'.tep_db_input($email_address).'"');
		
		if (!tep_db_num_rows($check_customer_query)) {
			$error = true;
		} else {
			$check_customer = tep_db_fetch_array($check_customer_query);
			// Check that password is good
			if (!tep_validate_password($password, $check_customer['customers_password'])) {
				$error = true;
			} else {
				if (SESSION_RECREATE == 'True') {
					$session->recreate();
				}
				
				$check_country_query = tep_db_query('select entry_country_id, entry_zone_id from '.TABLE_ADDRESS_BOOK.' where customers_id = "'.(int)$check_customer['customers_id'].'" and address_book_id = "'.(int)$check_customer['customers_default_address_id'].'"');
				$check_country = tep_db_fetch_array($check_country_query);
				
				$customer_id = $check_customer['customers_id'];
				$customer_default_address_id = $check_customer['customers_default_address_id'];
				$customer_first_name = $check_customer['customers_firstname'];
				$customer_country_id = $check_country['entry_country_id'];
				$customer_zone_id = $check_country['entry_zone_id'];
				$session->register('customer_id');
				$session->register('customer_default_address_id');
				$session->register('customer_first_name');
				$session->register('customer_country_id');
				$session->register('customer_zone_id');
				
				tep_db_query('update '.TABLE_CUSTOMERS_INFO.' set customers_info_date_of_last_logon = now(), customers_info_number_of_logons = customers_info_number_of_logons+1 where customers_info_id = "'.(int)$customer_id.'"');
				
				// restore cart contents
				$cart->restoreContents();
				
				if (sizeof($navigation->snapshot) > 0) {
					$origin_href = tep_href_link($navigation->snapshot['page'], tep_array_to_string($navigation->snapshot['get'], array($session->getName())), $navigation->snapshot['mode']);
					$navigation->clear_snapshot();
					tep_redirect($origin_href);
				} else {
					tep_redirect(tep_href_link(FILENAME_DEFAULT));
				}
			}
		}
	}
	
	if ($error == true) {
		$messageStack->add('login', 'TEXT_LOGIN_ERROR');
	}
	
	$theme->display('login.tpl');
}

require(DIR_WS_INCLUDES.'application_bottom.php');

?>
